home *** CD-ROM | disk | FTP | other *** search
/ PCGUIA 2010 Software/Programs / PCGuia_programas.iso / Software / Internet / FeedDemon / FeedDemonInstall.exe / {app} / Data / Styles / Surfer.fdxsl2 < prev   
Encoding:
Extensible Markup Language  |  2009-09-21  |  19.5 KB  |  500 lines

  1. <?xml version="1.0"?>
  2.  
  3. <xsl:stylesheet version="1.0"
  4.     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  5.     xmlns:fd="http://www.bradsoft.com/feeddemon/xmlns/1.0/">
  6.  
  7. <xsl:output method="html"
  8.     doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
  9.     doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
  10.  
  11. $INCLUDE(commonvar.inc)$
  12.  
  13. <fd:capabilities showExcerpts="true" toggleExcerpts="true" chooseContentSize="true" collapsePosts="false" itemGrouping="true" />
  14.  
  15. <!-- used when grouping by date or title -->
  16. <xsl:key name="key-group" match="/newspaper/channel/item" use="groupId" />
  17.  
  18. <xsl:variable name="feed-type" select="newspaper/channel/@feedType"/>
  19. <xsl:variable name="nwsp-filter" select="newspaper/@filter"/>
  20.  
  21. <xsl:variable name="show-headlines-only" select="($show-excerpts=2) and ($item-count > 1)"/>
  22.  
  23. <xsl:template match="newspaper">
  24.     <html>
  25.     <head>
  26.         <title>Newspaper (<xsl:value-of select="title" disable-output-escaping="yes"/>)</title>
  27.         $INCLUDE(metatrans.inc)$
  28.  
  29.         <style type="text/css">
  30.             $INCLUDE(surfer.css)$
  31.             $INCLUDE(commonstyles.css)$
  32.  
  33.             /* comment this rule to display item date/author/feed on a separate line */
  34.             div.postactions, div.dateline {
  35.                 display: inline;
  36.                 padding-right: 8px;
  37.                 vertical-align: middle;
  38.             }
  39.  
  40.             div.fdnewsitem {
  41.                 padding: 10px;
  42.                 text-align: left;
  43.                 border: 6px solid white; /* replaced when focused (#fdfocusedpost) */                
  44.             }
  45.             #fdfocusedpost { border-color: $COLOR-FOCUS-HIGHLIGHT$; }
  46.  
  47.             /* prevent large images from overlapping subsequent posts (without the side-effects of using the 'overflow' property) */
  48.             div.fdnewsitem, #fdfocusedpost, div.description {    
  49.                 min-height: 100%;
  50.             }
  51.  
  52.             div.newsitemsep { 
  53.                 border-bottom: 1px dotted $COLOR-GROUP-HEADER-BORDER$; 
  54.             }
  55.             div.newsitemtitle { 
  56.                 font-size: $FONT-SIZE-NEWSPAPER$; 
  57.                 margin-bottom: 8px; 
  58.             }
  59.             div.newsitemtitle .unread { font-size: 105%; }
  60.             a.newsitemtitle { margin-right: 4px; }
  61.             img.toggle {
  62.                 padding: 2px 2px 2px 0;
  63.                 margin-right: 2px;
  64.                 vertical-align: middle;
  65.             }
  66.  
  67.             div.dateline { 
  68.                 margin: 4px 0; 
  69.                 color: gray; 
  70.                 font-style: italic;
  71.             }
  72.  
  73.             div.description { margin: 8px 0; }
  74.             div.description a { 
  75.                 text-decoration: underline;
  76.             }
  77.             /* get rid of unnecessary whitespace caused by paragraphs in description*/
  78.             div.description p {
  79.                 margin: 0;
  80.                 padding: 0;
  81.                 margin-bottom: 1em;
  82.             }
  83.             div.noitems { color: gray; margin: 10px 18px; }
  84.             
  85.             /* keep group headers on one line */
  86.             div.groupheader {
  87.                 min-height: 20px;
  88.                 overflow: hidden;
  89.                 text-overflow: ellipsis;
  90.             }        
  91.  
  92.             div.postenclosure { font-weight: bold; font-size: smaller; margin-top: 6px; vertical-align: middle; }
  93.             div.postenclosure a { font-weight: normal; }
  94.             img.enclosure { margin-left: -2px; }
  95.  
  96.             #thumbnails_group {
  97.                 padding: 10px;
  98.                 text-align: center;                
  99.                 border-bottom: 1px solid #555555;
  100.                 background-color: #555555;
  101.                 zoom: 100%; /* force filter */
  102.                 filter: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#353535,endColorStr=#959595);
  103.              }
  104.             img.thumbnail {
  105.                 display: inline;            
  106.                 margin: 2px;
  107.                 border: 2px solid white;
  108.                 filter:progid:DXImageTransform.Microsoft.DropShadow(color=#353535,offX=3,offY=3);
  109.                 vertical-align: middle;
  110.                 height: 50px; /* all thumbnails should be same height */
  111.                 max-width: 100px;
  112.             }
  113.             a:hover img.thumbnail {
  114.                 border-color: #4A72EE;
  115.             }
  116.  
  117.             a.share, a.reply, span.taglist {    font-size: 11px; vertical-align: middle; }
  118.             .taglist a { color: green; }
  119.             a.share, a.reply { color: gray;  }
  120.             a.share:hover, a.reply:hover { text-decoration: none; }
  121.  
  122.             /* ratings (NGES) */
  123.             a.star { padding-right: 1px;}
  124.             a.star:hover { background-color: #fff8bf; }
  125.  
  126.             /* icons in header/footer */
  127.             div#page-icons {     
  128.                 float: right;
  129.                 font-size: small;
  130.                 /*font-weight: bold;*/
  131.                 margin-top: 3px;
  132.                 margin-right: 22px;
  133.             }
  134.             div#page-icons, div#page-icons a { color: white; }
  135.             span#content-options { margin-left: 30px; }
  136.             #headerimg { vertical-align: middle; }
  137.  
  138.             /* show border at bottom of all but last newspaper page when multiple pages exist */
  139.             <xsl:if test="($numPages > 1) and ($numPages != $pageNum)">
  140.                 div#container { border-bottom: 2px dashed $COLOR-GROUP-HEADER-BORDER$; }
  141.             </xsl:if>
  142.  
  143.             /* used when "Enable videos and other embedded content" is turned off */
  144.             div.embed-removed {
  145.                 margin: 4px 0 !important;
  146.                 padding: 0 !important;
  147.             }            
  148.             div.embed-removed img {
  149.                 padding: 6px 8px;
  150.                 border: 1px dotted $COLOR-SIDEBAR-BORDER$;
  151.                 background-color: $COLOR-SIDEBAR$
  152.             }
  153.             
  154.             /* currently unused */
  155.             div.fdannotation {
  156.                 border: 1px solid $COLOR-SIDEBAR-BORDER$;
  157.                 background-color: $COLOR-SIDEBAR$;
  158.                 color: $COLOR-SIDEBAR-FONT$;
  159.                 padding: 6px 8px;
  160.                 font-style: italic;
  161.             }
  162.             
  163.             /* content/grouping options */
  164.             img#content-full, img#content-excerpts, img#content-headlines, a#groupby-feed, a#groupby-date, a#groupby-title {
  165.                 vertical-align: middle;
  166.                 margin: 0 4px;
  167.             }
  168.             <xsl:choose>
  169.                 <xsl:when test="$show-excerpts=0">img#content-full</xsl:when>
  170.                 <xsl:when test="$show-excerpts=1">img#content-excerpts</xsl:when>
  171.                 <xsl:otherwise>img#content-headlines</xsl:otherwise>
  172.             </xsl:choose>
  173.             { 
  174.                 border: 2px solid $COLOR-PAGEHEAD2$;
  175.                 margin: 0 2px;
  176.             }
  177.             <xsl:choose>
  178.                 <xsl:when test="$group-by='feed'">a#groupby-feed</xsl:when>
  179.                 <xsl:when test="$group-by='date'">a#groupby-date</xsl:when>
  180.                 <xsl:otherwise>a#groupby-title</xsl:otherwise>
  181.             </xsl:choose>
  182.             {
  183.                 text-decoration: none;
  184.                 border-bottom: 1px solid white;
  185.             }
  186.  
  187.             /* show title on same line as post icons when displaying headlines only  */
  188.             <xsl:if test="$show-headlines-only">
  189.                 div.dateline, div.postactions, div.newsitemtitle {
  190.                     vertical-align: middle;                    
  191.                     margin: 0;
  192.                     padding: 0;
  193.                 }
  194.                 div.dateline { font-size: smaller; font-style: normal; }
  195.                 div.newsitemtitle, div.postactions { margin-right: 10px;    }
  196.                 div.newsitemtitle  {    display: inline; }
  197.                 /* use overflow on link rather than entire title div so that icon after title isn't clipped */
  198.                 div.newsitemtitle a.newsitemtitle {
  199.                     zoom: 100%; /* force layout so overflow property works */
  200.                     max-width: 60%;
  201.                     overflow: hidden;
  202.                     text-overflow: ellipsis;
  203.                 }
  204.                 div.fdnewsitem {
  205.                     display: inline-block;
  206.                     white-space: nowrap;
  207.                     overflow: hidden;
  208.                     text-overflow: ellipsis;
  209.                     padding-top: 3px;
  210.                     padding-bottom: 3px;
  211.                 }
  212.                 div.description {    
  213.                     margin-left: 20px;
  214.                     /* override .fdnewsitem above */
  215.                     display: block;
  216.                     white-space: normal;
  217.                 }
  218.                 /* display no description/excerpt when collapsed in headline view */
  219.                 div.description.collapsed {
  220.                     display: none;
  221.                 }
  222.                 /* don't show enclosure info on separate line */
  223.                 div.postenclosure { 
  224.                     display: inline; 
  225.                     margin-top: 0;
  226.                     margin-left: 10px;
  227.                 }                
  228.             </xsl:if>
  229.         </style>
  230.     </head>
  231.     <body>
  232.         <xsl:variable name="folderId" select="@folderId"/>
  233.         
  234.         <div id="pagehead">
  235.             <div id="page-icons">
  236.                 <xsl:if test="($item-count>1)">
  237.                     <!-- group by feed/date/title -->
  238.                     <span id="groupby-options">
  239.                         <a id="groupby-feed" href="fdaction:?action=changegroupby&value=feed" title="$LANG_CONST(S_NewsHintGroupByFeed)$">$LANG_CONST(S_NewsLblGroupByFeed)$</a>
  240.                         <a id="groupby-date" href="fdaction:?action=changegroupby&value=date" title="$LANG_CONST(S_NewsHintGroupByDate)$">$LANG_CONST(S_NewsLblGroupByDate)$</a>
  241.                         <a id="groupby-title" href="fdaction:?action=changegroupby&value=title" title="$LANG_CONST(S_NewsHintGroupByTitle)$">$LANG_CONST(S_NewsLblGroupByTitle)$</a>
  242.                     </span>
  243.                     <!-- full posts/excerpts/headlines -->
  244.                     <span id="content-options">
  245.                         <a href="fdaction:?action=showexcerpts&value=0" title="$LANG_CONST(S_NewsLblShowFullPosts)$"><img id="content-full" src="$IMAGEDIR$content-full.gif" align="absmiddle" /></a>
  246.                         <a href="fdaction:?action=showexcerpts&value=1" title="$LANG_CONST(S_NewsLblShowExcerpts)$"><img id="content-excerpts" src="$IMAGEDIR$content-excerpts.gif" align="absmiddle" /></a>
  247.                         <a href="fdaction:?action=showexcerpts&value=2" title="$LANG_CONST(S_NewsLblShowHeadlines)$"><img id="content-headlines" src="$IMAGEDIR$content-headlines.gif" align="absmiddle" /></a>                    
  248.                     </span>
  249.                 </xsl:if>
  250.                 
  251.                 <div id="fdnewitemsreceived">
  252.                     $LANG_CONST(S_NewItemsRcvdNewHtml)$
  253.                 </div>                
  254.             </div>
  255.             <div id="newspapertitle">
  256.                 $INCLUDE(headerimg.inc)$
  257.                 <xsl:choose>
  258.                     <!-- link to feed's homepage for channel newspaper -->
  259.                     <!-- ($feed-type!='newsbin') and ($feed-type!='watch') -->
  260.                     <xsl:when test="(@feedId!='') and ($newspaper-type='channel') and (channel/link)">
  261.                         <a href="fdaction:?action=gotofeedlink&feedId={@feedId}" title="{title}">
  262.                             <xsl:value-of select="title" disable-output-escaping="yes"/>
  263.                         </a>
  264.                     </xsl:when>
  265.                     <xsl:otherwise>
  266.                         <xsl:value-of select="title" disable-output-escaping="yes"/>
  267.                     </xsl:otherwise>
  268.                 </xsl:choose>
  269.             </div>
  270.         </div> <!-- pagehead -->
  271.  
  272.         <div id="container">
  273.             <!-- 
  274.                 THUMBNAILS (Media RSS - test with Flickr and Yahoo Image Search feeds)
  275.             -->
  276.             <xsl:if test="$SHOW-THUMBNAIL-PANEL$!=0">
  277.                 <xsl:variable name="nds_thumbnails" select="channel/item/thumbnail"/>
  278.                 <xsl:if test="$nds_thumbnails">
  279.                     <xsl:call-template name="groupheader">
  280.                         <xsl:with-param name="group-id" select="'thumbnails'"/>
  281.                         <xsl:with-param name="group-enable-mark-read" select="0"/>
  282.                         <xsl:with-param name="group-caption" select="'$LANG_CONST(S_NewsLblThumbnails)$'"/>
  283.                     </xsl:call-template>
  284.                     <xsl:variable name="thumbgroup-class">
  285.                         <xsl:choose>
  286.                             <xsl:when test="$THUMBNAILS-EXPANDED$=0">groupitems collapsed</xsl:when>
  287.                             <xsl:otherwise>groupitems</xsl:otherwise>
  288.                         </xsl:choose>
  289.                     </xsl:variable>
  290.                     <div id="thumbnails_group" class="{$thumbgroup-class}">
  291.                         <xsl:for-each select="$nds_thumbnails">
  292.                             <xsl:variable name="thumbnail-url" select="@url"/>
  293.                             <xsl:variable name="thumbnail-title" select="../title"/>
  294.                             <xsl:variable name="thumbnail-link">fdaction:?action=gotopostlink&feedid=<xsl:value-of select="../@feedId"/>&postid=<xsl:value-of select="../@postId"/>&markpostread=1</xsl:variable>
  295.                             <xsl:variable name="thumbnail-height" select="@height"/>
  296.                             <xsl:variable name="thumbnail-width" select="@width"/>
  297.                             <a href="{$thumbnail-link}" title="{$thumbnail-title}">
  298.                                 <xsl:choose>
  299.                                     <xsl:when test="$thumbnail-height=0 or $thumbnail-width=0">
  300.                                         <img src="{$thumbnail-url}" class="thumbnail" />
  301.                                     </xsl:when>
  302.                                     <xsl:otherwise>
  303.                                         <img src="{$thumbnail-url}" class="thumbnail" height="{$thumbnail-height}" width="{$thumbnail-width}" />
  304.                                     </xsl:otherwise>
  305.                                 </xsl:choose>
  306.                             </a>
  307.                         </xsl:for-each>
  308.                     </div>
  309.                 </xsl:if>
  310.             </xsl:if>
  311.             <!-- 
  312.                 NEWS ITEMS
  313.              -->
  314.             <xsl:choose>
  315.                 <!-- no items -->
  316.                 <xsl:when test="$item-count=0">
  317.                     <div class="noitems">
  318.                         <xsl:choose>
  319.                             <xsl:when test="($newspaper-type='search') or ($newspaper-type='newsitemarray')">$LANG_CONST(S_NoItemsInNewspaperSearch)$</xsl:when>
  320.                             <xsl:otherwise>$NO-ITEMS-IN-FILTER$
  321.                             <!-- $LANG_CONST(S_NoItemsInNewspaperFilter)$ (<a href="fdaction:?action=changenewspaperfilter" title="$LANG_CONST(S_ChangeNewspaperFilter)$"><xsl:value-of select="$nwsp-filter"/>)</a> --></xsl:otherwise>
  322.                         </xsl:choose>
  323.                     </div>
  324.                 </xsl:when>
  325.                 
  326.                 <!-- output items in groups - note that fd:group is set by FeedDemon based on customer's "group by" preference -->
  327.                 <xsl:otherwise>
  328.                     <xsl:for-each select="channel/item[count(. | key('key-group', groupId)[1]) = 1]">
  329.                         <!-- must pre-sort by @sortIndex or else some folders will sort by date incorrectly -->
  330.                         <xsl:sort select="@sortIndex" data-type="number"/>
  331.                         <xsl:variable name="groupid" select="groupId"/>
  332.                         <xsl:variable name="feedId" select="@feedId"/>
  333.                         <xsl:call-template name="groupheader">
  334.                             <xsl:with-param name="group-id" select="$groupid"/>
  335.                             <xsl:with-param name="group-caption" select="groupId/@caption"/>
  336.                             <xsl:with-param name="group-feed-id" select="$feedId"/>
  337.                         </xsl:call-template>
  338.                         <div class="groupitems" id="{$groupid}_group">
  339.                             <xsl:for-each select="key('key-group', groupId)">
  340.                                 <!-- now re-sort within each group -->
  341.                                 <xsl:sort select="@sortIndex" data-type="number"/>
  342.                                 <xsl:apply-templates select="."/>
  343.                             </xsl:for-each>
  344.                         </div>
  345.                     </xsl:for-each>
  346.                 </xsl:otherwise>
  347.             </xsl:choose>
  348.         </div> <!-- container -->
  349.     </body>
  350.     </html>
  351. </xsl:template>
  352.  
  353. <!-- news item template -->
  354. <xsl:template match="item">
  355.     <xsl:variable name="feedId" select="@feedId"/>
  356.     <xsl:variable name="postId" select="@postId"/>
  357.     <!-- must wrap in container so entire post can be hidden if deleted by customer -->
  358.     <div id="{$postId}_container">
  359.         <!-- important: name attribute must contain feedId:postId -->
  360.         <div class="fdnewsitem" name="{$feedId}:{$postId}">
  361.             <xsl:variable name="itemclass">
  362.                 <xsl:choose>
  363.                     <xsl:when test="state/@read=0 and state/@flagged!=0">unread flagged</xsl:when>
  364.                     <xsl:when test="state/@read=0">unread</xsl:when>
  365.                     <xsl:when test="state/@flagged!=0">flagged</xsl:when>
  366.  
  367.                     <xsl:otherwise>normal</xsl:otherwise>
  368.                 </xsl:choose>
  369.             </xsl:variable>
  370.     
  371.             <xsl:variable name="show-this-excerpt" select="excerpt and $show-excerpts=1 and $item-count>1"/>
  372.             <xsl:variable name="itemlink" select="link"/>
  373.             
  374.            <div class="newsitemtitle">
  375.                 <!-- image extracted from this post (excerpt only) -->
  376.                 <xsl:if test="postImageUrl and $show-this-excerpt">
  377.                     <a id="{$postId}_fdpostimg" href="{postImageUrl/@href}" title="{postImageUrl/@title}"><img class="fdpostimg" src="{postImageUrl}" /></a>
  378.                 </xsl:if>
  379.                 
  380.                 <!-- toggle excerpt/description -->
  381.                 <xsl:if test="($show-this-excerpt) or (description and $show-headlines-only)">
  382.                     <a class="icon" href="fdaction:?action=toggleexcerpt&postid={$postId}&feedid={$feedId}">
  383.                         <img class="toggle icon" src="$IMAGEDIR$arrowright2.gif" id="{$postId}_img_toggle_excerpt" align="absmiddle" />
  384.                     </a>
  385.                 </xsl:if>
  386.                 <!-- show "play media" icon for items containing media:player -->
  387.                 <xsl:variable name="playerurl" select="player/@url" />    
  388.                 <xsl:if test="$playerurl">
  389.                     <a href="{$playerurl}" title="$LANG_CONST(S_NewsHintPlayMedia)$"><img style="margin-right: 6px" src="$IMAGEDIR$play-media.gif" align="absmiddle" /></a>
  390.                 </xsl:if>
  391.                 <!-- item title -->
  392.                 <xsl:choose>
  393.                     <xsl:when test="link">
  394.                         <a class="newsitemtitle {$itemclass}" id="{$postId}_title" href="fdaction:?action=gotopostlink&feedid={$feedId}&postid={$postId}&markpostread=1" title="$LANG_CONST(S_NewsHintGotoPost)$">
  395.                             <xsl:value-of select="title" disable-output-escaping="yes"/>
  396.                         </a>
  397.                         <!-- goto post link in new tab -->
  398.                         <a class="icon" href="fdaction:?action=gotopostlink&newtab=1&feedid={$feedId}&postid={$postId}&markpostread=1" title="$LANG_CONST(S_NewsHintOpenInNewTab)$">
  399.                             <img class="icon" src="$IMAGEDIR$linknew.gif" align="absmiddle" />
  400.                         </a>            
  401.                     </xsl:when>
  402.                     <xsl:otherwise>
  403.                         <span class="newsitemtitle {$itemclass}"><xsl:value-of select="title" disable-output-escaping="yes"/></span>
  404.                     </xsl:otherwise>
  405.                 </xsl:choose>
  406.             </div>            
  407.             
  408.             $INCLUDE(postactions.inc)$
  409.             
  410.             <!-- add tooltip (title) to entire dateline DIV when showing headlines so that entire dateline appears in tooltip (useful when text is cropped) -->
  411.             <xsl:variable name="post-tooltip">
  412.                 <xsl:if test="$show-headlines-only">            
  413.                     <xsl:value-of select="dateDisplay"/>
  414.                     <xsl:if test="author"> | <xsl:value-of select="author" disable-output-escaping="yes"/></xsl:if>
  415.                     <xsl:if test="source"> | <xsl:value-of select="source"/></xsl:if>
  416.                 </xsl:if>
  417.             </xsl:variable>
  418.             
  419.             <div class="dateline" title="{$post-tooltip}">
  420.                 <xsl:value-of select="dateDisplay"/>                    
  421.                 <xsl:if test="author">
  422.                      <span class="sep">|</span><xsl:value-of select="author" disable-output-escaping="yes"/>
  423.                 </xsl:if>            
  424.                 <!-- show source if available - but only show for channel newspaper if this is a news bin or watch-->
  425.                 <xsl:if test="source">
  426.                     <xsl:if test="($newspaper-type!='channel') or ($feed-type='newsbin') or ($feed-type='watch')">
  427.                         <span class="sep">|</span>
  428.                         <xsl:choose>
  429.                             <!-- htmlUrl is a FeedDemon attribute -->
  430.                             <xsl:when test="source/@htmlUrl">
  431.                                 <a href="{source/@htmlUrl}" title="{source}"><xsl:value-of select="source"/></a>
  432.                             </xsl:when>
  433.                             <xsl:otherwise>
  434.                                 <span title="{source}"><xsl:value-of select="source"/></span>
  435.                             </xsl:otherwise>
  436.                         </xsl:choose>
  437.                     </xsl:if>
  438.                 </xsl:if>
  439.                 <!-- categories -->
  440.                 <!-- <xsl:if test="category">
  441.                     (<xsl:for-each select="category">
  442.                         <xsl:if test="position() > 1">, </xsl:if>
  443.                         <a href="fdaction:?action=showcategory&category={.}&feedid={$feedId}"><xsl:value-of select="."/></a>
  444.                     </xsl:for-each>)
  445.                 </xsl:if> -->
  446.             </div>
  447.             
  448.             $INCLUDE(postenclosure.inc)$
  449.                                     
  450.             <!-- finally, the description -->
  451.             <xsl:if test="description">
  452.                 <xsl:choose>
  453.                     <!-- for headline view, output no description or excerpt (FD code will insert full description when customer expands item) -->
  454.                     <xsl:when test="$show-headlines-only">
  455.                         <div id="{$postId}_description" class="collapsed description" />
  456.                     </xsl:when>
  457.                     <!-- show excerpt - note that the full description is inserted dynamically by FeedDemon when the excerpt is expanded -->
  458.                     <xsl:when test="$show-this-excerpt">
  459.                         <div class="description excerpt">
  460.                             <span id="{$postId}_description" class="collapsed">
  461.                                 <xsl:value-of select="excerpt" disable-output-escaping="yes"/>
  462.                             </span>
  463.                             <a class="more" title="$LANG_CONST(S_NewsHintExpand)$" href="fdaction:?action=toggleexcerpt&postid={$postId}&feedid={$feedId}" id="{$postId}_expand_link">$LANG_CONST(S_NewsLblExpand)$</a>
  464.                         </div>
  465.                     </xsl:when>
  466.                     <!-- show full post -->
  467.                     <xsl:otherwise>
  468.                         <div class="description">
  469.                             <xsl:value-of select="description" disable-output-escaping="yes"/>
  470.                         </div>
  471.                     </xsl:otherwise>
  472.                 </xsl:choose>
  473.             </xsl:if>
  474.         </div> <!-- fdnewsitem -->
  475.         
  476.         <!-- separator between news items -->
  477.         <div class="newsitemsep"></div>
  478.     </div> <!-- container -->
  479. </xsl:template>
  480.  
  481. <!-- group header template -->
  482. <xsl:template name="groupheader">
  483.     <xsl:param name="group-id"/>
  484.     <xsl:param name="group-caption"/>
  485.     <xsl:param name="group-feed-id"/>
  486.     <xsl:param name="group-enable-mark-read"/>
  487.     
  488.     <div class="groupheader collapsible" id="{$group-id}_header">
  489.         <!-- expand/collapse -->    
  490.         <a href="fdaction:?action=togglecollapse&id={$group-id}"><img src="$IMAGEDIR$arrowdown.gif" id="{$group-id}_img_expand" border="0" align="right" class="button" /></a>
  491.         <!-- group caption -->
  492.         <span class="groupcaption"><a href="fdaction:?action=togglecollapse&id={$group-id}"><xsl:value-of select="$group-caption" disable-output-escaping="yes"/></a></span>
  493.         <!-- mark group as read -->
  494.         <xsl:if test="($group-enable-mark-read != 0)">
  495.             <a href="fdaction:?action=markgroupread&groupid={$group-id}" title="$LANG_CONST(S_NewsHintMarkGroupRead)$"><img src="$IMAGEDIR$unread.gif" align="absmiddle" /></a>
  496.         </xsl:if>
  497.     </div>
  498. </xsl:template>
  499.  
  500. </xsl:stylesheet>